System and method for providing server application services with high availability and a many-to-one hardware configuration

ABSTRACT

A suite of network-based services, such as the services corresponding to the server application distributed by Microsoft® SharePoint™, may be provided to users with high availability. The suite of network-based services may include browser-based collaboration functions, process management functions, index and search functions, document-management functions, help and help search functions, and/or other functions. A plurality of computing devices functioning as servers may be backed up by a single computing device.

This application is a continuation of U.S. patent application Ser. No.13/034,111, filed Feb. 24, 2011, now allowed, the entire contents ofwhich is hereby incorporated herein by reference.

FIELD

The invention relates to providing server application services, such asthe services provided by the server application offered by Microsoft®SharePoint™, with high availability and a many-to-one back up hardwareconfiguration.

BACKGROUND

Microsoft® Sharepoint™ may be a rich enterprise server application thatprovides full content management features, implement business processes,and/or provide access to information related to organizational goalsand/or processes.

High availability may be a system design protocol that ensures a certaindegree of operational continuity. Conventional configurations ofMicrosoft® SharePoint™ may be challenged to meet high availabilitystandards for a variety of reasons. For example, conventionalconfigurations of servers providing redundancy involve a one-to-onestandby server to online server set up that is costly in terms ofhardware, bandwidth, and/or other resources.

SUMMARY

One aspect of the invention relates to a system and method providing asuite of network-based services, such as the services corresponding tothe server application distributed by Microsoft® SharePoint™, to userswith high availability. The suite of network-based services may includebrowser-based collaboration functions, process management functions,index and search functions, document-management functions, help and helpsearch functions, and/or other functions, The system and method mayenable a plurality of computing devices functioning as servers to bebacked up by a single computing device, may make the services availablewith high availability, and/or may provide other enhancements.

In some implementations, a single standby server devices may beconfigured to backup a server farm having two or more servers configuredto coordinate to serve a server application. The single standby serverdevice may be configured to execute computer program modules including aserver application module, a monitor module, an information transfermodule, a server replacement module, a changeover coordination module,configuration management module, and/or other modules.

The server application module may be configured to provide one or moreserver application services associated with a server application to bebacked up for the server farm. For example, the server application mayinclude the collection of software elements available from Microsoft®SharePoint™. The server application services may include one or more ofa web front-end service, an indexing service, a central administrationservice, one or more shared services, a database service, and/or othersub-modules.

The monitor module may be configured to determine whether a changeoverof the server farm should be initiated. Such determinations may be madebased on user input or command, and/or based on monitoring the operationof the server farm. Disruptions in operation of one or more of theservers in the server farm may cause the monitor module to determinethat a changeover of the server farm to the single standby device shouldbe initiated.

The information transfer module may be configured to transferinformation stored by the servers of the server farm to the electronicstorage of the standby server. This transfer of information may takeplace in response to determination by the monitor module that achangeover should be initiated. The information transferred may includea configuration database for the server farm, a central administrationwebsite associated with the server farm, information being served by theserver farm, and/or other information.

The server replacement module may be configured to replace the serversof the server farm with the standby server device. This replacement maybe made by replacing the servers of the server farm with the standbyserver device in information transferred from the servers of the serverfarm to the electronic storage of the standby server. For example, theserver replacement module may be configured to replace the servers ofthe server farm with the standby server device in the configurationdatabase, and/or other information.

The changeover coordination module may be configured to initiatestartup, on the server application module executed on the standby serverdevice, of the services previously provided by the server farm. Thechangeover coordination module may be configured to manage the order inwhich services are started up. For example, the changeover coordinationmodule may be configured such that the database service and the centraladministration service may be started up before other services. This maybring the configuration database and/or the central administrationwebsite online before other services are started up.

The configuration management module may be configured to adjust theconfiguration database after transfer to the electronic storage of thestandby server. This may be done in order to consolidate server rolesthat become redundant during changeover from the plurality of servers inthe server farm to the single standby server. This may involve scanningthe configuration database and/or the central administration website toidentify instances of redundancy. The identified instances of redundancymay then be addressed by deleting information, adjusting information,adjusting control settings, and/or performing other adjustments.

These and other objects, features, and characteristics of the presentinvention, as well as the methods of operation and functions of therelated elements of structure and the combination of parts and economiesof manufacture, will become more apparent upon consideration of thefollowing description and the appended cairns with reference to theaccompanying drawings, all of which form a part of this specification,wherein like reference numerals designate corresponding parts in thevarious figures. It is to be expressly understood, however, that thedrawings are for the purpose of illustration and description only andare not intended as a definition of the limits of the invention. As usedin the specification and in the claims, the singular form of “a”, “an”,and “the” include plural referents unless the context clearly dictatesotherwise.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a system configured to provide a suite ofnetwork-based services to users with high availability, in accordancewith one or more embodiments of the invention.

FIG. 2 illustrates a method of backing up a server farm having two ormore servers configured to coordinate to serve a server application witha single standby server device, according to one or more embodiments ofthe invention.

DETAILED DESCRIPTION

FIG. 1 illustrates a system 10 configured to provide a suite ofnetwork-based services to users with high availability. The suite ofnetwork-based services may include browser-based collaborationfunctions, process management functions, index functions, searchfunctions, help search functions, document-management functions, and/orother functions. The suite of network-based services may correspond toservices provided by a server application such as Microsoft® SharePoint™being executed on one or more processors of one or more servers. As usedherein, the term “high availability” may refer a system design protocolthat ensures a certain degree of operational continuity during a givenmeasurement period. In some implementations, system 10 may include afirst production server 12, a second production server 14, a thirdproduction server 16, a standby server device 18, and/or othercomponents.

The system 10 may leverage one or more external information sources 20.Users may interface with system 10 and/or external information sources20 via client computing platforms 22. The components of system 10,external information sources 20, and/or client computing platforms 22may be operatively linked via one or more electronic communicationlinks. For example, such electronic communication links may beestablished, at least in part, via a network such as the Internet and/orother networks. It will be appreciated that this is not intended to belimiting, and that the scope of this disclosure includes implementationsin which system 10, external information sources 20, and/or clientcomputing platforms 22 are operatively linked via some othercommunication media.

A given client computing platform 22 may include one or more processorsconfigured to execute computer program modules. The computer programmodules may be configured to enable one or more users associated withthe given client computing platform 22 to interface with system 10and/or external information sources 20, and/or provide otherfunctionality attributed herein to client computing platforms 22. By wayof non-limiting example, the given client computing platform 22 mayinclude one or more of a desktop computer, a laptop computer, a handheldcomputer, a NetBook, a Smartphone, and/or other computing platforms.

The external information sources 20 may be configured to provideinformation to system 10. This information may include content, userinformation, information related to achievements or accomplishments ofusers, and/or other information.

During ordinary operation, first production server 12, second productionserver 14, third production server 16, and/or other production servers(not shown) may cooperate to provide the network-based services of theserver application to users of client computing platforms 22 via thenetwork. As such, first production server 12, second production server14, and/or third production server 16 may be included in a “server farm”configured to provide the server application services of the serverapplication. In order for a server, such as first production server 12,second production server 14, or third production server 16, in theserver farm, the server may have to be included in a configurationdatabase for the server farm. An entry in the configuration databaseincluding the server in the server farm may indicate a server role ofthe server, and/or other information.

The server farm may serve, or host, the network-based services over thenetwork to client computing platforms 22. In order to provide thenetwork-based services with high availability, standby server device 18may be configured as a back-up to first production server 12, secondproduction server 14, and third production server 16 that replaces firstproduction server 12, second production server 14, third productionserver 16 and/or any other production servers in the server farm in caseof failover or switchover. Failover may include situations in which aserver (or one or more individual services hosted by a server) fails inan unexpected manner. Switchover may include situations in which theswitch from the server farm to standby server device 18 is performedintentionally. For example, switchover may be executed to performmaintenance, to test one or servers, and/or for other purposes. Forconvenience, the term “changeover” will be used herein to refer toswitching services from one server to another for either of failover orswitchover.

Although first production server 12, second production server 14, andthird production server 16 are each illustrated as a single entity inFIG. 1, this is not intended to be limiting. One or more of firstproduction server 12, second production server 14, and/or thirdproduction server 16 may represent a set of two or more servers thatcooperate to provide the functionality attributed to the individualserver(s) herein. The illustration of standby server device 18 as asingle entity, on the other hand, may be indicative of the operation ofstandby server device 18 as a single piece of server hardware in backingup an entire server farm including first production server 12, secondproduction server 14, and/or third production server 16.

The first production server 12, second production server 14, thirdproduction server 16, and/or standby server device 18 may be inoperative communication with each other. This operative communicationmay be accomplished via wireless communication, wired communication,network communication, communication via dedicated lines or channels,and/or other electronic communication media.

The first production server 12 may include electronic storage 24, one ormore processors 26, and/or other components. Electronic storage 24 maycomprise electronic storage media that electronically storesinformation. The electronic storage media of electronic storage 24 mayinclude one or both of system storage that is provided integrally (i.e.,substantially non-removable) with first production server 12 and/orremovable storage that is removably connectable to first productionserver 12 via, for example, a port (e.g., a USB port, a firewire port,etc.) or a drive (e.g., a disk drive, etc.). Electronic storage 24 mayinclude one or more of optically readable storage media (e.g., opticaldisks, etc.), magnetically readable storage media (e.g., magnetic tape,magnetic hard drive, floppy drive, etc.), electrical charge-basedstorage media (ea., EEPROM, RAM, etc.), solid-state storage media (e.g.,flash drive, etc.), and/or other electronically readable storage media.Electronic storage 24 may store software algorithms, informationdetermined by processor 26, information received via the network, and/orother information that enables first production server 12 to functionproperly. Electronic storage 24 may be a separate component within firstproduction server 12, or electronic storage 24 may be providedintegrally with one or more other components of first production server12 (e.g., processor 26).

Processor 26 may be configured to provide information processingcapabilities in first production server 12. As such, processor 26 mayinclude one or more of a digital processor, an analog processor, adigital circuit designed to process information, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information. Although processor26 is shown in FIG. 1 as a single entity, this is for illustrativepurposes only. In some implementations, processor 26 may include aplurality of processing units. These processing units may be physicallylocated within the same device, or processor 26 may represent processingfunctionality of a plurality of devices operating in coordination.

As is shown in FIG. 1, processor 26 may be configured to execute one ormore computer program modules. The one or more computer program modulesmay include a server application module 28, and/or other modules.Processor 26 may be configured to execute module 28 by software;hardware; firmware; some combination of software, hardware, and/orfirmware; and/or other mechanisms for configuring processingcapabilities on processor 26. The description of the functionalityprovided by modules 28 described below is for illustrative purposes, andis not intended to be limiting, as module 28 may provide more or lessfunctionality than is described.

The server application module 28 may be configured to provide one ormore server application services associated with a server application.As used herein, the term “server application” may refer to one or moresoftware elements that cause processor 26 to provide a suite ofnetwork-based services to users in a coordinated and cooperative mannerwith first production server 12, second production server 14, and/orthird production server 16. For example, the server application mayinclude the collection of software elements available from Microsoft®SharePoint™. The server application module 28 may be configured suchthat the server application provides application programming interfacesthrough which server application module 28 communicates with othercomputer program modules that are not an integral part of serverapplication module 28.

In cooperating with second production server 14, and/or third productionserver 16 to provide the server application services to users, theserver application module 28 may provide one or more of the serverapplication services. The server application services may include one ormore of a web front-end service, an indexing service, a centraladministration service, one or more shared services, a database service,and/or other sub-modules.

In some implementations, server application module 28 may be configuredto provide the database service. The database service may be configuredto provide database services to users of client computing platforms 22via the network. This may include processing database commands, queries,content, and/or other information related to a database, performing therequested actions and/or obtaining the requested information, andproviding the results to the requesting client computing platform(s) 22.The database service may be configured to maintain a configurationdatabase. The configuration database includes the configuration and sitemappings for the servers in the server farm. This may include, forexample, which components are configured in specific server, thecomponents' status, the security settings, and/or other configurationsand/or site mappings.

The second production server 14 may include electronic storage 30, oneor more processors 32, and/or other components. Electronic storage 30may comprise electronic storage media that electronically storesinformation. The electronic storage media of electronic storage 30 mayinclude one or both of system storage that is provided integrally (i.e.,substantially non-removable) with second production server 14 and/orremovable storage that is removably connectable to second productionserver 14 via, for example, a port (e.g., a USB port, a firewire port,etc.) or a drive (e.g., a disk drive, etc.). Electronic storage 30 mayinclude one or more of optically readable storage media (e.g., opticaldisks, etc.), magnetically readable storage media (e.g., magnetic tape,magnetic hard drive, floppy drive, etc.), electrical charge-basedstorage media (e.g., EEPROM, RAM, etc.), solid-state storage media(e.g., flash drive, etc.), and/or other electronically readable storagemedia. Electronic storage 30 may store software algorithms, informationdetermined by processor 32, information received via the network, and/orother information that enables second production server 14 to functionproperly. Electronic storage 30 may be a separate component withinsecond production server 14, or electronic storage 30 may be providedintegrally with one or more other components of second production server14 (e.g., processor 32).

Processor 32 may be configured to provide information processingcapabilities in second production server 14. As such, processor 32 mayinclude one or more of a digital processor, an analog processor, adigital circuit designed to process information, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information. Although processor32 is shown in FIG. 1 as a single entity, this is for illustrativepurposes only. In some implementations, processor 32 may include aplurality of processing units. These processing units may be physicallylocated within the same device, or processor 32 may represent processingfunctionality of a plurality of devices operating in coordination.

As is shown in FIG. 1, processor 32 may be configured to execute one ormore computer program modules. The one or more computer program modulesmay include a server application module 34, and/or other modules. Theserver application module 34 may be substantially the same as serverapplication module 28, and may be configured to provide one or more ofthe server application services associated with the server application.

In some implementations, server application module 34 may be configuredto provide the indexing service, may provide the central administrationservice, may perform one or more shared services provider roles, and/ormay provide other services. The indexing service may index informationserved by the server farm, metadata related to information served by theserver farm, and/or other information. The indexing service may crawlcontent, logs, and/or other information sources associated with theserver farm, and/or other information and create an index in an ongoingmanner. This index may be referenced to respond to queries and/orsearches by users, administrators, and/or for other purposes.

The central administration service may be configured to manageadministration functions within the server farm. This may includeserving a central administration database through which theconfiguration database is accessed by the servers (e.g., firstproduction server 12, second production server 14, and third productionserver 16) of the server farm. The central administration service mayprovide users with the capabilities to configure the servers and thecomponents/roles on them, modify security settings, configure web sites,provide access to other configuration parameters.

As a shared service provider, server application module 34 may beconfigured to provide one or more shared services within the serverfarm. The shared services may include one or more of a web-app serverservice, a query service, a spreadsheet calculation service, a helpsearch service, and/or other services.

The web-app server service may be configured to provide web applicationserver functionality to client computing platforms 22. This may includeexecuting a plurality of different information processing tasks at therequest of client computing platforms 22, and then returning the resultsto client computing platforms 22.

The query service may be configured to provide users with the capabilityto search desired information, for example, for a particular person (orgroup of people), for some specific document (or set of documents) in aweb site, and/or other information

The spreadsheet calculation service may be configured to provide userswith the capability to do the same operations on a spreadsheet files(e.g., a .XLS file) within a web browser as would be permitted withMicrosoft Office Excel software, but without having the Microsoft OfficeExcel installed on the client computer.

The help search service may be configured to provide users with thecapability to search help information for the SharePointconfigurations/operations. For example, the help search service mayreceive a request for information as to how to backup or restore a website, may search help information, and may return the pertinentinformation to the requesting user.

The third production server 16 may include electronic storage 36, one ormore processors 38, and/or other components. Electronic storage 36 maycomprise electronic storage media that electronically storesinformation. The electronic storage media of electronic storage 36 mayinclude one or both of system storage that is provided integrally (i.e.,substantially non-removable) with third production server 16 and/orremovable storage that is removably connectable to third productionserver 16 via, for example, a port (e.g., a USB port, a firewire port,etc.) or a drive (e.g., a disk drive, etc.). Electronic storage 36 mayinclude one or more of optically readable storage media (e.g., opticaldisks, etc.), magnetically readable storage media (e.g., magnetic tape,magnetic hard drive, floppy drive, etc.), electrical charge-basedstorage media (e.g., EEPROM, RAM, etc.), solid-state storage media(e.g., flash drive, etc.), and/or other electronically readable storagemedia. Electronic storage 36 may store software algorithms, informationdetermined by processor 38, information received via the network, and/orother information that enables third production server 16 to functionproperly. Electronic storage 36 may be a separate component within thirdproduction server 16, or electronic storage 36 may be providedintegrally with one or more other components of third production server16 (e.g., processor 38).

Processor 38 may be configured to provide information processingcapabilities in third production server 16. As such, processor 38 mayinclude one or more of a digital processor, an analog processor, adigital circuit designed to process information, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information. Although processor38 is shown in FIG. 1 as a single entity, this is for illustrativepurposes only. In some implementations, processor 38 may include aplurality of processing units. These processing units may be physicallylocated within the same device, or processor 38 may represent processingfunctionality of a plurality of devices operating in coordination.

As is shown in FIG. 1, processor 38 may be configured to execute one ormore computer program modules. The one or more computer program modulesmay include a server application module 40, and/or other modules. Theserver application module 40 may be substantially the same as serverapplication module 28 and/or server application module 34, and may beconfigured to provide one or more of the server application servicesassociated with the server application.

In some implementations, server application module 40 may be configuredto execute the web front-end service. The web front-end service may beconfigured to perform the functionality of a front-end web server inserving content over the network via a network communication protocol(e.g., HTTP and/or other protocols). The content may include webpages tobe served to users (e.g., via client computing platforms 22). A webpagemay include a document or resource that is accessible via a browser.These documents may be formatted in a mark-up format (e.g., HTML, XHTML,XML, and/or other mark-up formats), Serving the content may includereceiving requests for content, receiving instructions for altering orcalling content, and/or receiving other requests or instructions fromclient computing platform(s) 22, and then responding by providing therequested content (or locations of the requested content) to therequesting client computing platform(s) 22.

The standby server device 18 may generally be configured to backup theserver farm including first production server 12, second productionserver 14, and third production server 16. Prior to changeover from theserver farm to standby server device 18, standby server device 18 may beexcluded from the configuration database of the server farm. This maymean that standby server device 18 is not indicated in the configurationdatabase to be a part of the server farm. This may facilitate theperformance of operations on the server farm that would be complicatedby the presence of a server that was continually offline (since standbyserver device 18 would not be online until after a changeover). Thestandby server device 18 may include electronic storage 46, one or moreprocessors 48, and/or other components.

Electronic storage 46 may comprise electronic storage media thatelectronically stores information. The electronic storage media ofelectronic storage 46 may include one or both of system storage that isprovided integrally (i.e., substantially non-removable) with standbyserver device 18 and/or removable storage that is removably connectableto standby server device 18 via, for example, a port (e.g., a USB port,a firewire port, etc.) or a drive (e.g., a disk drive, etc.). Electronicstorage 46 may include one or more of optically readable storage media(e.g., optical disks, etc.), magnetically readable storage media (e.g.,magnetic tape, magnetic hard drive, floppy drive, etc.), electricalcharge-based storage media (e.g., EEPROM, RAM, etc.), solid-statestorage media (e.g., flash drive, etc.), and/or other electronicallyreadable storage media. Electronic storage 46 may store softwarealgorithms, information determined by processor 48, information receivedvia the network, and/or other information that enables standby serverdevice 18 to function properly. Electronic storage 46 may be a separatecomponent within standby server device 18, or electronic storage 46 maybe provided integrally with one or more other components of standbyserver device 18 (e.g., processor 48).

Processor 48 may be configured to provide information processingcapabilities in standby server device 18. As such, processor 48 mayinclude one or more of a digital processor, an analog processor, adigital circuit designed to process information, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information. Although processor48 is shown in FIG. 1 as a single entity, this is for illustrativepurposes only. In some implementations, processor 48 may include aplurality of processing units.

As is shown in FIG. 1, processor 48 may be configured to execute one ormore computer program modules. The one or more computer program modulesmay include a server application module 50, a monitor module 52, aninformation transfer module 54, a server replacement module 56, achangeover coordination module 58, a configuration management module 60,and/or other modules. Processor 48 may be configured to execute modules50, 52, 54, 56, 58, and/or 60 by software; hardware; firmware; somecombination of software, hardware, and/or firmware; and/or othermechanisms for configuring processing capabilities on processor 48.

The description of the functionality provided by the different modules50, 52, 54, 56, 58, and/or 60 described below is for illustrativepurposes, and is not intended to be limiting, as any of modules 50, 52,54, 56, 58, and/or 60 may provide more or less functionality than isdescribed. For example, one of modules 50, 52, 54, 56, 58; and/or 60 maybe eliminated, and/or some or all of its functionality may be providedby other ones of modules 50, 52, 54, 56, 58, and/or 60. As anotherexample, processor 48 may be configured to execute one or moreadditional modules that may perform some or all of the functionalityattributed below to one of modules 50, 52, 54, 56, 58, and/or 60.

The server application module 50 may be substantially the same as serverapplication modules 28, 34, and/or 40. As such, server applicationmodule 50 may be configured to function as a backup for the serverapplication services provided by the server farm. This many-to-onebackup configuration in which the single standby server device 18 backsup all of the servers in the server farm may be an enhancement overconventional systems in which individual ones of first production server12, second production server 14, and/or third production server 16 arebacked up by separate standby servers. For example, the replica/standbyauto-configuration procedures used for each individual server in a farmin conventional systems are not necessary. As another example, the useof standby server device 18 as the sole standby server device makesbackup and high availability less costly from a hardware standpoint.

The monitor module 52 may be configured to determine whether achangeover of the server farm should be initiated. The monitor module 52may determine whether a changeover should be initiated based on userinput and/or by monitoring operation of the servers in the server farm(e.g., first production server 12, second production server 14, andthird production server 16). The user input may include a user commandor selection to initiate a switchover. Monitoring operation of theservers in the server farm may include communicating information toand/or from the servers (e.g., requests for operational information,operational information, requests for status information, statusinformation, and/or other information) via the application programminginterfaces of one or more of first production server 12, secondproduction server 14, and/or third production server 16. A determinationthat a changeover should be initiated made by monitoring operation ofthe server farm may include a determination to initiate a failover basedon an observed disruption in operation in one or more of firstproduction server 12, second production server 14, and/or thirdproduction server 16. An observed disruption in operation may include atimed out operation, a disruption in communication, the failure of someapplication service, unavailability of some application function, and/orother disruptions.

The information transfer module 54 may be configured to effect thetransfer of information stored in electronic storage 24, 30, and/or 36associated with first production server 12, second production server 14,and/or third production server 16, respectively, to electronic storage46 associated with standby server device 18. This transfer ofinformation may be initiated by information transfer module 54responsive to a determination by monitor module 52 that a changeovershould be initiated. The information transferred may include one or moreof the configuration database, the files associated with the centraladministration database, information being served by the server farm toclient computing platforms 22, and/or other information. Effecting thetransfer of information may include transmitting requests forinformation to and/or receiving information from server applicationmodule 28, server application module 34, and/or server applicationmodule 40 via their application programming interfaces.

The server replacement module 56 may be configured to replace firstproduction server 12, second production server 14, and third productionserver 16 in the server farm with standby server device 18. This mayinclude replacing first production server 12, second production server14, and third production server 16 with standby server device 18 in theinformation transferred to electronic storage 46. For example, firstproduction server 12, second production server 14, and third productionserver 16 may be replaced with standby server device 18 in theconfiguration database so that calls to functions or services previouslyprovided by first production server 12, second production server 14,and/or third production server 16 will subsequently return standbyserver device 18.

The changeover coordination module 58 may be configured to initiatestartup, on server application module 50, of the server applicationservices provided by server application module 28, server applicationmodule 34, and server application module 40 subsequent to changeover.The changeover coordination module 58 may be configured to coordinatethe order in which startup is initiated to ensure ongoing operation ofstandby server device 18. This may include first initiating startup ofservices that are depended upon by other services before initiatingstartup of the dependent services. For example, changeover coordinationmodule 58 may be configured to initiate startup of the database serviceand/or the central administration service before initiating startup ofother server application services. This may bring the configurationdatabase and the central administration website online before the otherserver applications come online.

The consolidation of the server application services from the serverfarm including a plurality of servers (e.g., first production server 12,second production server 14, and third production server 16) to thesingle standby server device 18 may make some of the roles or servicessuperfluous, or redundant. For example, if third production server 16includes two or more server devices providing the web front-end service,the server farm may require a load balancing function to balance theloads between the two or more server devices. After changeover to thesingle standby server device 18, load balancing becomes redundant. Asanother example, roles that are similar, such as a search servicecomposed of the index service and the query service. Since afterchangeover, the standby server device 18 may provide both the indexservice and the query service, the search service may become redundant.Other examples exist.

The configuration management module 60 may be configured to adjust thesettings and/or configuration database of the server farm during orafter changeover to reduce or eliminate this redundancy. This mayinvolve scanning the configuration database and/or the centraladministration website to identify instances of redundancy. Theidentified instances of redundancy may then be addressed by deletinginformation, adjusting information, adjusting control settings, and/orperforming other adjustments. The configuration management module 60 maybe configured to perform this functionality after the database serviceand the central administration service are brought online on standbyserver device 18. The configuration management module 60 may beconfigured to perform this functional before other server applicationservices are brought online on standby server device 18.

FIG. 2 illustrates a method 62 of backing up a server farm having two ormore servers configured to coordinate to serve a server application witha single standby server device. The operations of method 62 presentedbelow are intended to be illustrative. In some embodiments, method 62may be accomplished with one or more additional operations notdescribed, and/or without one or more of the operations discussed.Additionally, the order in which the operations of method 62 areillustrated in FIG. 2 and described below is not intended to belimiting.

In some embodiments, method 62 may be implemented in one or moreprocessing devices (e.g., a digital processor, an analog processor, adigital circuit designed to process information, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information). The one or moreprocessing devices may include one or more devices executing some or allof the operations of method 62 in response to instructions storedelectronically on an electronic storage medium. The one or moreprocessing devices may include one or more devices configured throughhardware, firmware, and/or software to be specifically designed forexecution of one or more of the operations of method 62.

At an operation 64, a determination may be made as to whether achangeover of the server farm should be initiated. The determination maybe made based on user inputs or commands, and/or based on monitoring ofthe operation of the server farm. Responsive to a determination that achangeover of the server farm should be initiated, method 62 may proceedto an operation 66. Responsive to a determination that a changeover ofthe server farm should not be initiated, method 62 may loop back overoperation 64. In some implementations, operation 64 may be performed bya monitor module similar to or the same as monitor module 52 (shown inFIG. 1 and described above).

At operation 66, information stored in electronic storage associatedwith the server farm may be transferred to electronic storage associatedwith the single standby server device. Such information may include, forexample, a configuration database of the server farm, a centraladministration website, information related to server applicationservices being served by the server farm, and/or other information. Thetransfer of the information may include generation of one or morerequests for information from the single standby server device, and/orreception of the information at the standby server device. In someimplementations, operation 66 may be performed by an informationtransfer module similar to or the same as information transfer module 54(shown in FIG. 1 and described above).

At an operation 68, startup of one or more of the server applicationservices previously served by the server farm may be initiated on thestandby server device. The order in which startups of serverapplications are initiated may be managed according to a predeterminedorder. For example, startup of a database service may be first beinitiated at operation 68. This may bring the configuration databaseonline. Subsequent to startup of the configuration database, startup ofa central administration service may be initiated. Startup of thecentral administration service may result in the central administrationwebsite being brought online. Subsequent to startup of the centraladministration service, startups of other server application servicesmay be initiated. The order in which startups at least some of theservices are initiated may be in accordance with a predetermined order.In some implementations, operation 68 may be performed by a changeovercoordination module similar to or the same as changeover coordinationmodule 58 (shown in FIG. 1 and described above).

Responsive to startup of the database service, the servers of the serverfarm may be replaced by the standby server device at an operation 70.This may include replacing the servers of the server farm in theconfiguration database with the single standby server device. In someimplementations, operation 70 may be performed by a server replacementmodule similar to or the same as server replacement module 56 (shown inFIG. 1 and described above).

At an operation 72, the configuration database may be adjusted toconsolidate server roles that become redundant during changeover fromthe plurality of servers in the server farm to the single standby serverdevice. In some implementations, operation 72 may be performed by aconfiguration management module similar to or the same as configurationmanagement module 60 (shown in FIG. 1 and described above).

In some implementations, performance of operation 70 and/or 72 may beresponsive to startup of the central administration service. This maythe case if operation 70 and/or operation 72 is to be performed via thecentral administration website. Method 62 may loop back to operation 68until all of the server application services have been brought online.

In an embodiment, there is provided a system configured to backup aserver farm having two or more servers configured to coordinate to servea server application, the system comprising: a single standby serverdevice configured to backup the server farm such that the serverapplication is provided with high availability, the standby serverdevice including electronic storage and a processor configured toexecute computer modules, the computer modules comprising: a serverapplication module configured to serve the server application; a monitormodule configured to determine whether a changeover of the server farmshould be initiated; an information transfer module configured totransfer information stored by the servers of the server farm to theelectronic storage of the standby server device in response todetermination by the monitor module that a changeover should beinitiated, such information including a configuration database for theserver farm and a central administration website associated with theserver farm; a server replacement module configured to replace theservers of the server farm with the standby server device in informationtransferred from the servers of the server farm to the electronicstorage of the standby server device; and a changeover coordinationmodule configured to initiate startup, on the server application moduleexecuted on the standby server device, of the services previouslyprovided by the server farm.

In an embodiment, the server replacement module is configured to replacethe servers of the server farm with the standby server device in theconfiguration database for the server farm. In an embodiment, thechangeover coordination module is configured to initiate startup of theconfiguration database and the central administration website prior tostartup of the other services previously provided by the server farm. Inan embodiment, the monitor module is configured to monitor operation ofthe server farm, and to determine a changeover should be initiated basedon disruptions in operation of the server farm detected by the monitormodule. In an embodiment, the monitor module is configured to determinea changeover should be initiated based on reception of a switchovercommand from a user. In an embodiment, the server application is aserver application provided by Microsoft® SharePoint™. In an embodiment,the servers in the server farm comprise a first set of one or moreservers configured to serve a web front-end, a second set of one or moreservers configured to serve an index, shared services, and the centraladministration website, and a third set of one or more serversconfigured to serve databases including the configuration database. Inan embodiment, prior to determination by the monitor module thatchangeover should be initiated, the monitor module is configured tomonitor operation of the server farm while being excluded from theserver farm. In an embodiment, the computer program modules furthercomprise a configuration management module configured to adjust theconfiguration database after transfer to the electronic storage of thestandby server device in order to consolidate server roles that becomeredundant during changeover from the plurality of servers in the serverfarm to the single standby server device by virtue of the reduction inthe number of servers providing the services changed over from theplurality of servers to the single standby service device, the reductionbeing from more than one to one.

In an embodiment, there is provided a computer-implemented method ofbacking up a server farm having two or more servers configured tocoordinate to serve a server application, the method being implementedin a single standby sewer device having electronic storage and aprocessor configured to execute computer program modules, the methodcomprising: determining whether a changeover of the server farm shouldbe initiated; responsive to a determination that changeover of theserver farm should be initiated, receiving information stored by theservers of the server farm to the electronic storage of the standbyserver device, such information including a configuration database forthe server farm and a central administration website associated with theserver farm; replacing the servers of the server farm with the standbyserver device in information transferred from the servers of the serverfarm to the electronic storage of the standby server device; andinitiating startup, on the standby server device, of the services of theserver application previously served by the server farm.

In an embodiment, replacing the servers of the server farm with thestandby server device in the transferred information comprises replacingthe servers of the server farm with the standby server device in theconfiguration database. In an embodiment, initiating startup comprisesinitiating startup of the configuration database and the centraladministration website prior to startup of the other services previouslyprovided by the server farm. In an embodiment, determination as towhether a changeover should be initiated is based on a disruption inoperation of the server farm detected by the single standby serverdevice. In an embodiment, determination as to whether a changeovershould be initiated is based on reception of a switchover command from auser. In an embodiment, the server application is a server applicationprovided by Microsoft® Sharepoint™. In an embodiment, the servers in theserver farm comprise a first set of one or more servers configured toserve a web front-end, a second set of one or more servers configured toserve an index, shared services, and the central administration website,and a third set of one or more servers configured to serve databasesincluding the configuration database. In an embodiment, prior todetermination that changeover should be initiated, the single standbyserver device is excluded from the server farm. In an embodiment, themethod further comprises adjusting the configuration database aftertransfer to the electronic storage of the standby server device in orderto consolidate server roles that become redundant during changeover fromthe plurality of servers in the server farm to the single standby serverdevice by virtue of the reduction in the number of servers providing theservices changed over from the plurality of servers to the singlestandby service device, the reduction being from more than one to one.

Although the invention has been described in detail for the purpose ofillustration based on what is currently considered to be the mostpractical and preferred embodiments, it is to be understood that suchdetail is solely for that purpose and that the invention is not limitedto the disclosed embodiments, but, on the contrary, is intended to covermodifications and equivalent arrangements that are within the spirit andscope of the appended claims. For example, it is to be understood thatthe present invention contemplates that, to the extent possible, one ormore features of any embodiment can be combined with one or morefeatures of any other embodiment.

What is claimed is:
 1. A system configured to backup a server farmhaving two or more servers configured to coordinate to serve a serverapplication, the system comprising: a single standby server deviceconfigured to backup the server farm such that the server application isprovided with high availability, the standby server device includingelectronic storage and a processor configured to execute computermodules, the computer modules comprising: a server application moduleconfigured to serve the server application; a monitor module configuredto determine whether a changeover of the server farm should beinitiated; an information transfer module configured to transferinformation stored by the servers of the server farm to the electronicstorage of the standby server device in response to determination by themonitor module that a changeover should be initiated, such informationincluding a configuration database for the server farm and a centraladministration website associated with the server farm; a serverreplacement module configured to replace the servers of the server farmwith the standby server device in information transferred from theservers of the server farm to the electronic storage of the standbyserver device; and a changeover coordination module configured toinitiate startup, on the server application module executed on thestandby server device, of the services previously provided by the serverfarm.
 2. The system of claim 1, wherein the server replacement module isconfigured to replace the servers of the server farm with the standbyserver device in the configuration database for the server farm.
 3. Thesystem of claim 1, wherein the changeover coordination module isconfigured to initiate startup of the configuration database and thecentral administration website prior to startup of the other servicespreviously provided by the server farm.
 4. The system of claim 1,wherein the monitor module is configured to monitor operation of theserver farm, and to determine a changeover should be initiated based ondisruptions in operation of the server farm detected by the monitormodule.
 5. The system of claim 1, wherein the monitor module isconfigured to determine a changeover should be initiated based onreception of a switchover command from a user.
 6. The system of claim 1,wherein the server application is a server application provided byMicrosoft® SharePoint™.
 7. The system of claim 1, wherein the servers inthe server farm comprise a first set of one or more servers configuredto serve a web front-end, a second set of one or more servers configuredto serve an index, shared services, and the central administrationwebsite, and a third set of one or more servers configured to servedatabases including the configuration database.
 8. The system of claim7, wherein, prior to determination by the monitor module that changeovershould be initiated, the monitor module is configured to monitoroperation of the server farm while being excluded from the server farm.9. The system of claim 1, wherein the computer program modules furthercomprise a configuration management module configured to adjust theconfiguration database after transfer to the electronic storage of thestandby server device in order to consolidate server roles that becomeredundant during changeover from the plurality of servers in the serverfarm to the single standby server device by virtue of the reduction inthe number of servers providing the services changed over from theplurality of servers to the single standby service device, the reductionbeing from more than one to one.
 10. A computer-implemented method ofbacking up a server farm having two or more servers configured tocoordinate to serve a server application, the method being implementedin a single standby server device having electronic storage and aprocessor configured to execute computer program modules, the methodcomprising: determining whether a changeover of the server farm shouldbe initiated; responsive to a determination that changeover of theserver farm should be initiated, receiving information stored by theservers of the server farm to the electronic storage of the standbyserver device, such information including a configuration database forthe server farm and a central administration website associated with theserver farm; replacing the servers of the server farm with the standbyserver device in information transferred from the servers of the serverfarm to the electronic storage of the standby server device; andinitiating startup, on the standby server device, of the services of theserver application previously served by the server farm.
 11. The methodof claim 10, wherein replacing the servers of the server farm with thestandby server device in the transferred information comprises replacingthe servers of the server farm with the standby server device in theconfiguration database.
 12. The method of claim 10, wherein initiatingstartup comprises initiating startup of the configuration database andthe central administration website prior to startup of the otherservices previously provided by the server farm.
 13. The method of claim10, wherein determination as to whether a changeover should be initiatedis based on a disruption in operation of the server farm detected by thesingle standby server device,
 14. The method of claim 10, whereindetermination as to whether a changeover should be initiated is based onreception of a switchover command from a user.
 15. The method of claim10, wherein the server application is a server application provided byMicrosoft® SharePoint™.
 16. The method of claim 10, wherein the serversin the server farm comprise a first set of one or more serversconfigured to serve a web front-end, a second set of one or more serversconfigured to serve an index, shared services, and the centraladministration website, and a third set of one or more serversconfigured to serve databases including the configuration database. 17.The method of claim 10, wherein, prior to determination that changeovershould be initiated, the single standby server device is excluded fromthe server farm.
 18. The method of claim 10, further comprisingadjusting the configuration database after transfer to the electronicstorage of the standby server device in order to consolidate serverroles that become redundant during changeover from the plurality ofservers in the server farm to the single standby server device by virtueof the reduction in the number of servers providing the services changedover from the plurality of servers to the single standby service device,the reduction being from more than one to one.